/*
 * tiposPaquetes.h
 *
 *  Created on: 30/11/2011
 *      Author: utn_so
 */

#include <stdint.h>

#ifndef TIPOSPAQUETES_H_
#define TIPOSPAQUETES_H_

#define TIPO_HANDSHAKE 0
#define TIPO_LECTURA 1
#define TIPO_ESCRITURA 2
#define TIPO_ERROR 0
#define TIPO_TIEMPO 5

#define ERROR_CAMBIAR_CONEXION_A_RAID1 "MODOCONNECT"
#define ERROR_CAMBIAR_CONEXION_A_DISCO "ERROR1PLAN"
#define ERROR_NINGUN_DISCO "ERROR0PLAN"

typedef struct t_paquete{
	uint8_t type;
	int16_t pLength;
	char* payLoad;
} __attribute__((packed)) t_paquete;

typedef struct payLoad_Escritura{
	uint64_t numSector;
	char contenidoSector[512];
} __attribute__((packed)) payLoad_Escritura;

typedef struct t_paquete_escritura{
	uint8_t type;
	int16_t pLength;
	payLoad_Escritura* payLoad;
} __attribute__((packed)) t_paquete_escritura;

typedef struct t_paquete_lectura{
	uint8_t type;
	int16_t pLength;
	uint64_t* payLoad;
} __attribute__((packed)) t_paquete_lectura;

#endif /* TIPOSPAQUETES_H_ */
